# 习题：
# 1、定义好班级同学人员列表，让同学们互送礼物，要求：不能自己送自己，随机送礼，一个人只能收一份礼物。
     # 定义好人员名单，循环送礼物的人，随机挑选一个收礼物的，最终打印送礼和收礼的关系

# import random
#
# students = ["a", "b", "c", "d", "e"]
# givers = students.copy()
# receivers = students.copy()
# received = []
# result = {}
# for giver in givers:
#     # 删除收礼者中送礼者本人的名字，防止自己送自己
#     receivers.remove(giver)
#     # 随机送礼
#     receiver = random.choice(receivers)
#     if receiver not in received:
#         # 送礼者是key,收礼者是value
#         result[giver] = receiver
#         # 将本轮送礼者的名字添加到收礼者列表，以便进行下一次循环
#         receivers.append(giver)
#         # 将收过礼的加入received列表，确保每人只收一份礼物
#         received.append(receiver)
# print(result)


# 2、定义一个字典，将字典里面的整数相加，最终打印哪些key相加，它们相加的值是多少。

# dict1 = {'a': 11, 'b': 22, 'c': 33, 'd': 44}
# keys = ['a', 'b', 'd']
# values = 0
# for key in keys:
#     values += dict1[key]
# print(f"key相加的值是：{values}")


# 3、定义一个列表，里面全部存放整数类型，输出列表中的最大值、最小值、和、平均值。

# num_list = [1, 3, 5, 7, 9]
# max_num = max(num_list)
# min_num = min(num_list)
# sum_num = sum(num_list)
# avg_num = sum_num / len(num_list)
# print(f"最大值为{max_num}")
# print(f"最小值为{min_num}")
# print(f"总和为{sum_num}")
# print(f"平均值为{avg_num}")


# 4、使用python实现ls命令，接受从键盘输入的文件路径，如果路径是文件夹，打印路径下有哪些文件或文件夹。如果路径是文件，就只输出当前文件本身。

# import os
#
# path = input("请输入文件路径：")
# 判断是否为目录
# if os.path.isdir(path):
#     for file_name in os.listdir(path):
#         print(file_name)
# 判断是否为文件
# elif os.path.isfile(path):
#     print(path)
